﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MontagsmalerApp.Models;

namespace MontagsmalerApp.ViewModels
{
	public class BegriffWirdGemalt : SpielStatus
	{
		public BegriffWirdGemalt(Spiel spiel)
			: base(spiel)
		{

		}

		public override void SpielVorbereiten()
		{
			throw new StatusWechselException();
		}

		public override void MalrundeVorbereiten()
		{
			throw new StatusWechselException();
		}

		public override void NeuenBegriffErzeugen()
		{
			throw new StatusWechselException();
		}

		public override void BegriffBeenden(bool erraten)
		{
			_spiel.AktuellerBegriff = new Begriff();

			if (erraten)
			{
				_spiel.RichtigeAntworten++;
				_spiel.AktuellerSpieler.AddierePunkte(1);
				_spiel.Log("Begriff wurde erraten.");
			}
			else
			{
				_spiel.FalscheAntworten++;
				_spiel.Log("Begriff konnte nicht erraten werden. Es folgt der nächste Begriff.");
			}

			_spiel.Status = new BegriffBeendet(_spiel);
		}

		public override void MalrundeBeenden()
		{
			// Zuerts den Begriff beenden, dann ist das Spiel im Zustand BegriffBeendet
      _spiel.BegriffBeenden(false);
			// Dann die Malrunde beenden
			_spiel.Status.MalrundeBeenden();
		}

		public override void SpielBeenden()
		{
			// Zuerts den Begriff beenden, dann ist das Spiel im Zustand BegriffBeendet
			BegriffBeenden(false);
			// Dann die Malrunde beenden, dann ist das Spiel im Zustand MalrundeBeendet
			_spiel.Status.MalrundeBeenden();
			// Dann das Spiel beenden
			_spiel.Status.SpielBeenden();
		}
	}
}
